Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for hardware-accelerated decoding #254

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

twdragon
Copy link
Collaborator

@twdragon twdragon commented Jun 7, 2023

Added hardware-accelerated decoding with FFMPEG HWACCEL API for mjpeg and h264 pixel formats

  • Feature supported only from libavcodec 52.00.100
  • Added configuration parameters for activating hardware acceleration on decoding
  • Added ROS service to enumerate available hardware accelerators
  • Tested on:
    • CUDA/NVENC decoder on H.264 streams
    • VDPAU on MJPEG streams

	- Added hardware-accelerated decoding with FFMPEG HWACCEL API
	  for mjpeg and h264 pixel formats
	- Feature supported only from libavcodec 52.00.100
	- Added configuration parameters for activating hardware
	  acceleration on decoding
	- Added ROS service to enumerate available hardware
	  accelerators
	- Tested on:
	    - CUDA/NVENC decoder on H.264 streams
	    - VDPAU on MJPEG streams
@twdragon twdragon requested a review from knorth55 June 7, 2023 18:09
@flynneva
Copy link
Collaborator

flynneva commented Jun 7, 2023

@knorth55 @twdragon I thought we were trying to merge together our ROS 1 and ROS 2 branches....not continue to diverge.

This feature would be great to use in both ROS 1 and ROS 2.

@knorth55
Copy link
Member

knorth55 commented Jun 8, 2023

@flynneva i think its better to first find a way to migrate ros1 and ros2 branch.
sorry, buy i could have enough time to work on it.

@twdragon
Copy link
Collaborator Author

twdragon commented Jun 8, 2023

Dear @flynneva @knorth55! We are free to merge ROS1 and ROS2 parts of the project, and I support your opinion about this. We can keep the branch for as long time as we need. This pull request is created again as a side effect of my own work that I consider important for the community. I developed and tested the modification of usb_cam to enable hardware acceleration for my internal works, then decided to create a dedicated branch and PR to let the willing ROS1 users test the feature. I also wanted to point your attention to the way the new architecture of internal API maintains the changes. Actually, to adopt it we just need a compatible node wrapper for ROS2 as for ROS1 everything is already done.

@twdragon
Copy link
Collaborator Author

twdragon commented Jun 8, 2023

@flynneva @knorth55 I added issue #255 to facilitate the experience, especially I want to kindly ask @flynneva for a point to the way to generate the ROS2 parameters dynamically during startup. This could really accelerate the process

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants